const fs = require('fs');
const path = require('path');
const { spawn } = require('child_process');

let appProcess = null; // 存储应用进程的变量

// 监听文件变化
function watchChanges() {
  console.log('🌟 恭喜，你已成功运行 app.js！ 🚀');
  const filePaths = [
    path.resolve(__dirname, './codeLint.js'), // 你的 Node.js 应用文件的路径 (例如，file.js)
    path.resolve(__dirname, './code.js') // 你的 Node.js 应用入口文件的路径 (例如，index.js)
  ];

  filePaths.forEach(filePath => {
    fs.watch(filePath, (eventType, filename) => {
      if (eventType === 'change') {
        console.log('代码已保存，重新启动应用...');
        // 如果应用进程存在，则先杀死进程
        if (appProcess) {
          appProcess.kill();
        }

        // 启动新的应用进程
        appProcess = spawn('node', ['codeLint.js']); // 重新运行 node index.js

        appProcess.stdout.on('data', data => {
          console.log(data.toString());
        });

        appProcess.stderr.on('data', data => {
          console.error(data.toString());
        });
      }
    });
  });
}

// 启动监听
watchChanges();